package lib

import "math"

func init() {
	Probs = append(Probs, Problem{
		Num:         8,
		Discription: "Atoi",
		Level:       2,
		Labels: map[string]int{
			"大整数": 1,
		},
	})
}

//1. 去除前导空格
//2. 判断字符串是否为空
//3. 确定符号，默认正
//4. 计算数字，有前导0不影响
func MyAtoi(s string) int {
	i := 0
	for i < len(s) && s[i] == ' ' {
		i++
	}

	if len(s) == i {
		return 0
	}

	//注意有可能没有符号
	sign := 1
	if s[i] == '-' {
		sign = -sign
		i++
	} else if s[i] == '+' {
		i++
	}

	res := 0
	for i < len(s) && s[i] >= '0' && s[i] <= '9' {
		res = res*10 + int(s[i]-'0')
		if res > math.MaxInt32 {
			if sign == 1 {
				return math.MaxInt32
			} else {
				return math.MinInt32
			}
		}
		i++
	}

	return res * sign
}
